/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package vista;

import java.util.logging.Level;
import java.util.logging.Logger;
import modelo.CategoriaProducto;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.DefaultTableModel;
import negocio.ExcepcionValidacion;
import negocio.ServiciosNegocio;

/**
 *
 * @author Aguero
 */
public class ControladorCategorias implements ControladorGeneral{

private Categorias ventanaCategorias;
private AMCategoria amCategoria;
private ServiciosNegocio servicios;

    public ControladorCategorias(ServiciosNegocio servicios) {

        this.servicios = servicios;

    }
    

    public void crearVentanaLista(java.awt.Frame padre, boolean modal){

        ventanaCategorias=new Categorias(padre,modal);

    }

     public void crearVentanaA(javax.swing.JDialog padre, boolean modal){

        amCategoria=new AMCategoria(padre,modal);
        amCategoria.setControlador(this);

    }

     public void crearVentanaM(javax.swing.JDialog padre, ArrayList<Object> datos, boolean modal){

        amCategoria=new AMCategoria(padre, datos, modal);
        amCategoria.setControlador(this);
    }

     public void nuevo(ArrayList<Object> datos) {
        try {
            servicios.alta(datos);
        } catch (ExcepcionValidacion ex) {
            Logger.getLogger(ControladorCategorias.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

    public void modificar(ArrayList<Object> datos){
        try {
            servicios.modificacion(datos);
        } catch (ExcepcionValidacion ex) {
            Logger.getLogger(ControladorCategorias.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

    public void borrar(Long id){
        try {
            servicios.eliminar(id);
        } catch (ExcepcionValidacion ex) {
            Logger.getLogger(ControladorCategorias.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

    public void actualizarTabla(javax.swing.JDialog ventana) {
        ventanaCategorias= (Categorias)ventana;
        List<CategoriaProducto> categorias = (List<CategoriaProducto>) servicios.listar();
        DefaultTableModel modeloTabla = ventanaCategorias.getModeloTabla();
        modeloTabla.setRowCount(0);
        for (CategoriaProducto categoria : categorias) {
            Object[] fila = {categoria.getId(),categoria.getNombre()};
            modeloTabla.addRow(fila);
        }
    }

    public CategoriaProducto traerPorID(Long id) {
        return (CategoriaProducto) servicios.buscar(id);
    }

}
